home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 36 / PC Gamer IT CD 36 2-2.iso / VIGDEMO / data1.cab / Assets / scripts / switch.e < prev   
Text File  |  1998-09-21  |  5KB  |  704 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. int Initialize(string type) {
  451.     global int gProperty;
  452.     global int mystate = 1;
  453.     global string gMessage = "dummy";
  454.     global int gNetwork = 0;
  455.     global real gInRadius = 50.0;
  456.     global real gOutRadius = 90.0;
  457.     global int gNeedAction = 0;
  458.     global int gToggle = 0;
  459.     global real gOpeningTime = 1.5;
  460.     global real gStayOpenTime = 2.0;
  461.     global int gOneTime = 0;
  462.     global int gTurnOff = 0;
  463.     global int gStartSound = 0;
  464.     global int gProgressSound = -1;
  465.     global int gEndSound = -1;
  466.     global int gVoiceOver = -1;
  467.     global string gRemoveObject = "keycard";
  468.     global int gLoopSoundHandle = 0;
  469.     global int gRemoveFromPossesion = 0;
  470.     global int gMsgSnd = -1;
  471.     global real gDisplayTime;
  472.     Reset("hello");
  473. }
  474.  
  475. int Reset(string dummy)
  476. {
  477.     CloseLowLevel();
  478.     mystate = 1;
  479.     SetCollidableProperties(thisObject,1,0); 
  480.     SetStyle(thisObject,1);
  481.     gDisplayTime = 0.0;
  482.     stopLoopSound();
  483. }
  484.  
  485. int say(string soundname)
  486. {
  487.     gVoiceOver = GetBrainVOSoundIndex(soundname);
  488. }
  489.  
  490. int removeobject(string str)
  491. {
  492.     gRemoveObject = str;
  493. }
  494.  
  495. int removeheldobject(string hello)
  496. {
  497.     gRemoveFromPossesion = 1;
  498. }
  499.  
  500. int msgsnd(string soundname)
  501. {
  502.     gMsgSnd = GetSoundIndex(soundname);
  503. }
  504.  
  505. int stopLoopSound()
  506. {
  507.     if (gLoopSoundHandle != 0)
  508.         StopSound(thisObject,gLoopSoundHandle);
  509.     gLoopSoundHandle = 0;
  510. }
  511.  
  512. int startsound(string soundname)
  513. {
  514.     gStartSound = GetSoundIndex(soundname);
  515. }
  516.  
  517. int endsound(string soundname)
  518. {
  519.     gEndSound = GetSoundIndex(soundname);
  520. }
  521.  
  522. int progresssound(string soundname)
  523. {
  524.     gProgressSound = GetSoundIndex(soundname);
  525. }
  526.  
  527. int onetime(string dummy)
  528. {
  529.     gOneTime = 1;
  530. }
  531.  
  532. int start(string dummy)
  533. {
  534.     if (gTurnOff == 0)
  535.     {
  536.         if (gOneTime == 1)
  537.             gTurnOff = 1;
  538.         TimedEvent(1);
  539.     }
  540.  
  541. }
  542.  
  543. int needaction(string dummy)
  544. {
  545.     gNeedAction = 1;
  546.     
  547. }
  548.  
  549. int toggle(string dummy)
  550. {
  551.     gToggle = 1;
  552. }
  553.  
  554. int TimedEvent(int input) 
  555. {
  556.     real time;
  557.     real phase;
  558.     time = GetTime(thisObject);
  559.     switch (mystate)
  560.     {
  561.     case 1:
  562.         if (input == 1)
  563.         {
  564.             if (gToggle == 1)
  565.             {
  566.                 mystate = 4;
  567.                 wakeupTime = -1.0;
  568.                 if (gProgressSound != -1)
  569.                 {
  570.                     gLoopSoundHandle = PlaySound(thisObject,gProgressSound,0,1);
  571.                 }
  572.             }
  573.             else
  574.             {
  575.                 wakeupTime = time + gStayOpenTime;
  576.                 mystate = 3;
  577.             }
  578.             OpenLowLevel();
  579.         }
  580.         break;
  581.     case 2:
  582.         {
  583.             if (input == 0)
  584.             {
  585.                 phase = AnimGetPhase(thisObject);
  586.                 if (phase == 0.0)    
  587.                 {
  588.                     mystate = 1;
  589.                     wakeupTime = -1.0;
  590.                 }
  591.                 else
  592.                 {
  593.                     wakeupTime = time + 0.1;
  594.                 }
  595.             }
  596.             break;
  597.         }
  598.     case 3:
  599.         if (input != 1)        
  600.         {
  601.             mystate = 2;
  602.             CloseLowLevel();
  603.             wakeupTime = time + gOpeningTime;
  604.         }
  605.         break;
  606.     case 4:
  607.         if (input == 1)        
  608.         {
  609.             mystate = 2;
  610.             CloseLowLevel();
  611.             wakeupTime = time + gOpeningTime;
  612.             stopLoopSound();
  613.         }
  614.         break;
  615.     default:
  616.         break;
  617.     }
  618.  
  619. }
  620.  
  621. int OpenLowLevel ()
  622. {
  623.     Animate(thisObject,1,"flip");
  624.     AnimSetPhase(thisObject,0.0);
  625.     AnimSetDirection(thisObject,0);
  626.     PlaySound(thisObject,gStartSound);
  627.     return 0;
  628. }
  629.  
  630. int CloseLowLevel ()
  631. {
  632.     Animate(thisObject,1,"flip");
  633.     AnimSetPhase(thisObject,1.0);
  634.     AnimSetDirection(thisObject,1);
  635.     PlaySound(thisObject,gEndSound);
  636.     return 0;
  637. }
  638.  
  639. int inradius(string str)
  640. {
  641.     gInRadius = Str2Real(str);
  642. }
  643.  
  644. int network(string str)
  645. {
  646.     gNetwork = Str2Int(str);
  647. }
  648.  
  649. int outradius(string str)
  650. {
  651.     gOutRadius = Str2Real(str);
  652. }
  653.  
  654. int Colliders(string dummy) {
  655.     int result;
  656.     int operated;
  657.     map::iterator ix;
  658.     map::iterator iy;
  659.     map objInList;
  660.     real time;
  661.     time = GetTime(thisObject);
  662.     result = 0;
  663.     operated = 0;
  664.     int op2;
  665.  
  666.     if (IsAuthoritative(thisObject) != 1)
  667.         return result;
  668.  
  669.     if (gNeedAction != 1) {
  670.  
  671.         objInList = Collisions(thisObject,0,1,0); 
  672.  
  673.         ix = begin(objInList);
  674.         iy = end(objInList);
  675.  
  676.         if (ix != iy)
  677.         {
  678.             start("hello");
  679.             SendMessage(thisObject,gOutRadius,gNetwork);
  680.         }
  681.     } else  if (mystate == 1) {
  682.         if (gDisplayTime < time)  {
  683.             gDisplayTime = time + 10.0;
  684.             SendEnglishMessage(thisObject);
  685.             PlayVoiceOver(gVoiceOver);
  686.             PlaySound(thisObject, gMsgSnd);
  687.             
  688.         }
  689.     }
  690.     IgnoreCollision(thisObject);
  691. }
  692.  
  693. int Action(string key)
  694. {
  695.     if (IsAuthoritative(thisObject) != 1)
  696.             return;
  697.     start("hello");
  698.     SendMessage(thisObject,gOutRadius,gNetwork);
  699.     if (gRemoveFromPossesion == 1) {
  700.         RemoveObject(thisObject,key,gRemoveObject);
  701.     }
  702.     return 0;
  703. }
  704.